Thief - Fixes Collection
========================

Author: MichaelWang44
Date: 2026-09-27
For: Thief 1.9.2.4

DESCRIPTION
-----------

A collection of minimal-invasive bug fixes for the Thief mod.

1. Lunar Nirnroot Waterfall Fix:
Fixes a bug in the Druid riddle route of the Lunar Nirnroot quest.
After answering the Druid's riddles correctly, the dialogue progresses
normally, but the waterfall entrance leading to the Lunar Nirnroot cave
is not enabled. Other routes correctly enable the waterfall.

2. Solitude Bedroom (bd_sol_bp_room) Interaction Fix:
Fixes an issue where entering the bedroom could leave player control
or room initialization incomplete. Reverts premature quest stage
advancement to preserve normal first-night stage checks.

3. Solitude Bedroom Bath Interruption Fix:
Fixes a bug where after undressing and lighting the fireplace to bathe, Butler Wooster
and the servants never enter the bedroom to interrupt the player.
In SF_hp_sug_BP_room_bath_gift_046FC725, door unlock and unblock calls were guarded by
`GetStage() < 10`, leaving bedroom doors locked and activation blocked. Additionally,
the servant enable and butler positioning calls were placed solely inside the Phase 13
branch, causing them to never execute on lower lust levels. The fix makes door unlocking
unconditional at the start of the bath scene (and re-locking on scene exit), and ensures
the actors are properly initialized outside the door.

4. Solitude Bedroom Morning Wake-Up & Black Screen Fix:
Fixes a critical bug where sleeping alone and dismissing servants causes the morning
scene to fail and get stuck in a black screen:
a) In SF_hp_sug_BP_room_sleep_in_0470257F, added a fallback check for SleepIntro in
   Fragment_5 so the introductory morning sequence reliably triggers.
b) In SF_hp_sug_BP_room_sleep_0470254F (Fragment_8), added SetDoorsLock(False) and
   SetDoorsBlock(False) to ensure bedroom doors are fully unlocked for morning entry.
c) In SF_hp_sug_BP_room_sleep_0470254F (Fragment_12), corrected dft_util.camoff call
   to disable its trailing black fadeout parameter and directly invoked native
   Game.FadeOutGame(False, True, 0.0, 1.5) to smoothly lift the sleep fade-out.
d) In SF_hp_sug_BP_room_sleep_0470254F (Fragment_21), ensured Butler Wooster is enabled,
   properly placed at the exterior doorway navmesh marker, and executed EvaluatePackage()
   alongside a native FadeOutGame call so he smoothly enters the room and initiates dialogue.

5. Solitude Palace Exit Door Escort Deadlock Fix:
Fixes a game-breaking stall where Butler Wooster escorts the player to the Blue Palace
exit doorway, but then freezes indefinitely with player controls disabled:
a) In bd_SQ_sol_03_Butler_Outdoor (SCEN 0x04101078), Phase 1 contained only static
   Hold Position AI packages without conditions, timers, or dialogue, causing the engine
   to stall forever before Phase 2. The fix injects distance-based completion conditions
   to Phase 1 (and exterior transition Phases 4 and 5) so the scene smoothly progresses
   into Wooster's farewell dialogue, teleports the player outside, executes exterior
   monologue thoughts, and sets Quest Stage 60.
b) In SF_bd_SQ_sol_02_ImpressTalk__03101078 (Fragment_2), automatically aligns the player
   to DA02FriendEscortMarker015 facing Butler Wooster when Phase 0 completes.

6. Solitude Bedroom & Outdoor Save Disabled (BlockSave) Bug Fix:
Fixes a bug where saving the game remains disabled from the moment the player enters
the bath all the way through the solitary night, wake-up, and outdoor palace departure:
a) In SF_hp_sug_BP_room_bath_out_046FF639 (Fragment_3), corrected an author typo where
   dft_util.blocksave(True) was called upon exiting the bathtub. Changed to blocksave(False).
b) In SF_hp_sug_BP_room_sleep_0470254F (Fragment_21), added blocksave(False) upon morning
   wake-up to guarantee saving is unlocked if any prior scene left it blocked.
c) In SF_bd_SQ_sol_02_ImpressTalk__03101078 (Fragment_4, Fragment_6, Fragment_7), added
   blocksave(False) when exiting to the exterior and completing Quest Stage 60, ensuring
   saving is completely re-enabled once outside.

FIX
---

1. Lunar Nirnroot Waterfall:
This patch adds the missing waterfall activation to the successful
riddle dialogue fragment:
    WaterfallActivator.GetRef().Enable(False)

2. Solitude Bedroom Interaction:
Cleaned up SF_bd_SQ_sol_02_Impress_Rest_03101079 (Fragment_0) to prevent
premature quest stage advancement on the first night.

3. Solitude Bedroom Bath Interruption:
Modifies SF_hp_sug_BP_room_bath_gift_046FC725 (Fragment_0 and Fragment_12)
to unconditionally unlock and unblock bedroom doors during the bath scene, re-lock them
upon exiting the scene, and ensure the servants and Butler Wooster are enabled and positioned
outside the door at the start of the scene.

4. Solitude Bedroom Morning Wake-Up & Black Screen:
- SF_hp_sug_BP_room_sleep_in_0470257F.pex: Fragment_5 ensures hp_sug_BP_room_sleep_intro
  triggers if SleepIntro is not yet complete.
- SF_hp_sug_BP_room_sleep_0470254F.pex: Fragment_8 unlocks room doors; Fragment_12 disables
  camoff trailing black fadeout and calls native Game.FadeOutGame; Fragment_21 evaluates
  Butler Wooster's travel package from the doorway marker to walk in and converse.
No ESP changes required.

CONTENTS
--------

Thief - Fixes.esp
    Adds the required VMAD property binding to the affected dialogue INFO, and injects
    completion conditions to scene bd_SQ_sol_03_Butler_Outdoor (0x04101078) to resolve the exit door stall.

scripts\bd_sq_ghost_TIF__0304E0B9.pex
    Adds the missing Enable() call to the existing dialogue fragment.

scripts\SF_bd_SQ_sol_02_Impress_Rest_03101079.pex
    Maintains clean room initialization without premature stage modification.

scripts\SF_hp_sug_BP_room_bath_gift_046FC725.pex
    Unconditionally unlocks bedroom doors and initializes servant/butler entry for the bath scene.

scripts\SF_hp_sug_BP_room_sleep_0470254F.pex
    Unlocks bedroom doors, resolves the camera black screen hold via native engine fade-in, and ensures Butler Wooster's entry.

scripts\SF_hp_sug_BP_room_bath_out_046FF639.pex
    Corrects blocksave(True) typo to blocksave(False) upon exiting the bathtub.

scripts\SF_hp_sug_BP_room_sleep_in_0470257F.pex
    Guarantees introductory morning scene execution on first night sleep.

scripts\SF_bd_SQ_sol_02_ImpressTalk__03101078.pex
    Aligns the player to the doorway marker facing Butler Wooster when Phase 0 completes,
    and unconditionally restores saving (blocksave False) upon exiting to the exterior.

REQUIREMENTS
------------

Thief 1.9.2.4

INSTALLATION
------------

Install with Mod Organizer 2 or another mod manager.
Ensure Thief - Fixes is enabled and loaded after Thief 1.9.2.4.

CREDITS
-------

Thief / Dogma belongs to its original author(s).
This package contains only bug fixes created by MichaelWang44.

CHANGELOG
---------

1.5 - 2026-09-27
- Added Solitude Bedroom & Outdoor Save Disabled (BlockSave) Bug Fix. Fixed mod author
  typo in SF_hp_sug_BP_room_bath_out_046FF639 where blocksave(True) was called instead of
  False, and ensured blocksave(False) is called during morning wake-up and upon palace departure.
- Renamed patch plugin from Thief - Druid Riddle Waterfall Fix.esp to Thief - Fixes.esp.

1.4 - 2026-09-27
- Added Solitude Palace Exit Door Escort Deadlock Fix. Injected phase completion conditions
  into bd_SQ_sol_03_Butler_Outdoor so the scene advances into Wooster's departure dialogue,
  teleports the player to Solitude exterior, plays monologue thoughts, and reaches Quest Stage 60.

1.3 - 2026-09-27
- Added Solitude Bedroom Morning Wake-Up & Departure Fix. Fixed morning escort
  scene where Butler Wooster failed to enter after sleeping alone.

1.2 - 2026-09-27
- Added Solitude Bedroom Bath Interruption Fix. Butler Wooster and the servants now
  properly enter the bedroom to interrupt the bath scene regardless of lust levels.

1.1 - 2026-09-27
- Added Solitude Bedroom (bd_sol_bp_room) Interaction Fix.

1.0 - 2026-09-17
- Initial release.
- Fixed the missing waterfall entrance after successfully completing
  the Druid riddle route.